package com.snail.clouds.framework.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 虚拟文件表实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("virtual_files")
public class VirtualFile extends BaseEntity {
    /**
     * 文件ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 文件名
     */
    @TableField("name")
    private String name;
    
    /**
     * 父目录ID
     */
    @TableField("parent_id")
    private Long parentId;
    
    /**
     * 是否为目录(0:文件, 1:目录)
     */
    @TableField("is_directory")
    private Integer isDirectory;
    
    /**
     * 关联的存储文件ID
     */
    @TableField("storage_file_id")
    private String storageFileId;
    
    /**
     * 文件大小(字节)
     */
    @TableField("file_size_bytes")
    private Long fileSizeBytes;
    
    /**
     * 媒体类型
     */
    @TableField("media_type")
    private String mediaType;
    
    /**
     * 文件扩展名
     */
    @TableField("file_extension")
    private String fileExtension;
    
    /**
     * 访问时间
     */
    @TableField("accessed_at")
    private LocalDateTime accessedAt;
    
    /**
     * 原父目录ID
     */
    @TableField("original_parent_id")
    private Long originalParentId;
    
    /**
     * 原始名称
     */
    @TableField("original_name")
    private String originalName;
}